// 基于 axios 封装的请求模块
import axios from 'axios'
import { getUser } from './storage.js'
import JSONbig from 'json-bigint'
// 创建一个 axios 实例，说白了就是复制了一个 axios
// 我们通过这个实例去发请求，把需要的配置配置给这个实例来处理
const ajax = axios.create({
  baseURL: 'http://ttapi.research.itcast.cn/', // 请求的基础路径
  // baseURL: 'http://api-toutiao-web.itheima.net/'
  transformResponse: [function (data) {
    // console.log(data)
    // data就是本次请求获取的数据
    // 这里可以对它进一步处理jsonbig
    try {
      return JSONbig.parse(data)
    } catch (err) {
      console.log('JSONbig转换出错', err)
      return data
    }
  }]
})
// 导出请求方法
export default ajax
// 拦截器-所有的请求发出去之前会执行的函数，都会处理的逻辑
ajax.interceptors.request.use(function (config) {
  const userInfo = getUser()
  // 请求方式之前做一些事
  // console.log('ajax.interceptors.request', Date.now(), config)
  // 本次请求采用的配置
  if (userInfo && userInfo.token) {
    // 在这里给请求加上headers，设置token
    config.headers.Authorization = `Bearer ${userInfo.token}`
  }
  return config
}, function (error) {
  return Promise.reject(error)
})
